package com.design.pattern.observe;

public class ObserverPatternDemo {
    public static void main(String[] args) {
        RealSubject realSubject = new RealSubject();
        Observer binaryObserver = new BinaryObserver();
        Observer hexObserver = new HexObserver(); // 假设HexObserver是另一个观察者实现

        // 注册观察者
        realSubject.registerObserver(binaryObserver);
        realSubject.registerObserver(hexObserver);

        // 改变状态并触发通知
        realSubject.setState("1101");
        realSubject.setState("1010");

        // 移除一个观察者
        realSubject.removeObserver(hexObserver);

        // 再次改变状态，这次不会通知已移除的观察者
        realSubject.setState("1111");
    }
}